package org.social.controller;

import com.sojoys.artifact.manager.JsonManager;
import com.sojoys.artifact.third.web.core.NettyHttpContext;
import com.sojoys.artifact.tools.RenderBean;

/**
 * @author : DengYing
 * @CreateDate : 2018年1月3日 下午5:22:16
 * @Description ：Please describe this document
 */
public interface BaseServer {
	/**
	 * 自定义render
	 * @param data 正常情况下返回的数据
	 * 描述：公共render，所有的renderJson都必须返回RenderObject，包含处理状态、返回数据、失败下的状态码、失败描述
	 */
	default void renderSuccess(NettyHttpContext ctx,Object data,String description) {
		RenderBean renderBean = new RenderBean();
		renderBean.setDescription(description);
		renderBean.setData(data);
		ctx.send(JsonManager.me().getJson().toJson(renderBean));
	}


	/**
	 * 自定义render失败
	 * @param errorCode 错误码
	 * @param description 错误描述
	 * 描述：公共render，所有的renderJson都必须返回RenderObject，包含处理状态、返回数据、失败下的状态码、失败描述
	 */
	default void renderError(NettyHttpContext ctx,int errorCode, String description) {
		RenderBean renderBean = new RenderBean();
		renderBean.setStatus(errorCode);
		renderBean.setDescription(description);
		ctx.send(JsonManager.me().getJson().toJson(renderBean));
	}
}
